package com.quanyan.place.mapper;

import com.quanyan.place.entity.TbBizPlace;
import com.quanyan.place.entity.TbBizPlaceUnit;
import com.quanyan.place.entity.vo.*;

import org.apache.ibatis.annotations.Param;
import scala.Int;
import com.quanyan.place.request.SaleDatailRequest;

import java.util.List;

/**
 * StatisticsPlaceSaleMapper
 *
 * @author Li Shuai
 * @date 16/4/15
 */
public interface StatisticsPlaceSaleMapper {
    /**
     * 获得销售概况统计 根据城市 开始-------------------
     */
    /**
     * 已售金额 和 已售时间
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSaleYet(ReqPlaceSale reqPlaceSale);

    /**
     * 计划时间
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSalePlan(ReqPlaceSale reqPlaceSale);

    /**
     * 已购时间（包片和整馆）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourPart(ReqPlaceSale reqPlaceSale);

    /**
     * 已购时间（时间段）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourStep(ReqPlaceSale reqPlaceSale);

    /**
     * 整馆包片已购时间（当前时间之前的，无法购买）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourPartPast(ReqPlaceSale reqPlaceSale);

    /**
     * 分段已购时间（当前时间之前的，无法购买）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourStepPast(ReqPlaceSale reqPlaceSale);

    /**
     * 已售时间（截止当前时间）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSaleTimeHourYetPast(ReqPlaceSale reqPlaceSale);
    /**
     * 获得销售概况统计 根据城市 结束-------------------
     */


    /**
     * 获得销售概况统计 根据场馆 开始-------------------
     */
    /**
     * 已售金额 和 已售时间
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSaleYetByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 计划时间
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSalePlanByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 已购时间（包片和整馆）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourPartByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 已购时间（时间段）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourStepByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 整馆包片已购时间（当前时间之前的，无法购买）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourPartPastByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 分段已购时间（当前时间之前的，无法购买）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceBuyTimeHourStepPastByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 已售时间（截止当前时间）
     * @param reqPlaceSale
     * @return
     */
    PlaceSaleStatisticsVo getStatisticsPlaceSaleTimeHourYetPastByPlace(ReqPlaceSale reqPlaceSale);

    /**
     * 获得销售概况统计 根据场馆 结束-------------------
     */

    /**
     * 查询已销售的场馆
     */
    List<TbBizPlace> selectPlaceInfoYetSale(@Param("reqPlaceSale") ReqPlaceSale reqPlaceSale);
    int selectPlaceInfoYetSaleTotal(ReqPlaceSale reqPlaceSale);
    //
    List<SaleAbleVo> selectPlaceUnitBuyToSale(Integer placeId);
    List<SaleAbleVo> selectPlaceUnitSale(Integer placeId);
    /**
     * 查询销售详情统计
     * @param request
     * @return
     */
    List<PlaceSaleTimeVo> selectSaleDetail(SaleDatailRequest request);

    List<OneWeekSellVo> selectOneWeekSell(SaleDatailRequest request);
}
